Skip to main content

Last Update: 2025/3/26

Kling Image to Video API

The Image to Video API enables you to create video content from image using Kling's AI models. This document provides details about the API endpoint, parameters, and response structure.

Endpoint

POST https://platform.llmprovider.ai/v1/videos/image2video

Request Headers

HeaderValue
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

Request Body

The request body should be a JSON object with the following parameters:

FieldTypeDescription
modelstringThe model to use. Options: kling-video-v1, kling-video-v1-6 Default: kling-video-v1
imagestringReference image. Accepts Base64 encoded image or URL. Image must be JPG/JPEG/PNG, max 10MB, min 300x300px, aspect ratio between 1:2.5-2.5:1
image_tailstring(Optional) Reference image for tail frame control. Same format requirements as image parameter
promptstring(Optional) Text prompt for video generation (max 2500 characters)
negative_promptstring(Optional) Negative text prompt (max 2500 characters). Default: empty
cfg_scalefloat(Optional) Generation freedom scale [0, 1]. Higher values mean stricter adherence to prompt. Default: 0.5
modestring(Optional) Generation mode. Options: std (standard), pro (professional quality). Default: std
static_maskstring(Optional) Static brush mask image. Same format requirements as image parameter
dynamic_masksarray(Optional) Dynamic brush configuration list (max 6 groups). Each group contains mask and trajectories
durationstring(Optional) Video duration in seconds. Options: 5, 10. Default: 5
external_task_idstring(Optional) Custom task identifier (must be unique per user)

Dynamic Masks Object Structure

FieldTypeDescription
maskstringDynamic brush mask image
trajectoriesarrayMovement trajectory coordinates (2-77 points) with x,y values
{
"model": "kling-video-v1",
"mode": "pro",
"duration": "5",
"image": "https://h2.inkwai.com/bs2/upload-ylab-stunt/se/ai_portal_queue_mmu_image_upscale_aiweb/3214b798-e1b4-4b00-b7af-72b5b0417420_raw_image_0.jpg",
"prompt": "宇航员站起身走了",
"cfg_scale": 0.5,
"static_mask": "https://h2.inkwai.com/bs2/upload-ylab-stunt/ai_portal/1732888177/cOLNrShrSO/static_mask.png",
"dynamic_masks": [
{
"mask": "https://h2.inkwai.com/bs2/upload-ylab-stunt/ai_portal/1732888130/WU8spl23dA/dynamic_mask_1.png",
"trajectories": [
{
"x": 279,
"y": 219
},
{
"x": 417,
"y": 65
}
]
}
]
}

Response Body

The API returns a JSON object with the following structure:

FieldTypeDescription
task_idstringGenerated task identifier
task_infoobjectTask creation parameters
task_statusstringTask status: submitted, processing, succeed, failed
created_atintegerTask creation timestamp (milliseconds)
updated_atintegerLast update timestamp (milliseconds)

Example Response

{
"task_id": "task_xyz789",
"task_info": {
"external_task_id": "custom_id_123"
},
"task_status": "submitted",
"created_at": 1722769557708,
"updated_at": 1722769557708
}

Example Request

curl -X POST https://platform.llmprovider.ai/v1/videos/image2video \
-H "Authorization: Bearer $YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-video-v1",
"mode": "pro",
"duration": "5",
"image": "https://h2.inkwai.com/bs2/upload-ylab-stunt/se/ai_portal_queue_mmu_image_upscale_aiweb/3214b798-e1b4-4b00-b7af-72b5b0417420_raw_image_0.jpg",
"prompt": "宇航员站起身走了",
"cfg_scale": 0.5,
"static_mask": "https://h2.inkwai.com/bs2/upload-ylab-stunt/ai_portal/1732888177/cOLNrShrSO/static_mask.png",
"dynamic_masks": [
{
"mask": "https://h2.inkwai.com/bs2/upload-ylab-stunt/ai_portal/1732888130/WU8spl23dA/dynamic_mask_1.png",
"trajectories": [
{
"x": 279,
"y": 219
},
{
"x": 417,
"y": 65
}
]
}
]

}'

For any questions or further assistance, please contact us at [email protected].